TrendAnalysis <- function(wts,means,n,MSerror,level){ trend.names <- c("Linear","Quadratic","Cubic","Quartic") rem.names <- c(" Remain1"," Remain2"," Remain3"," Remain4") z <- data.frame(matrix(NA,2*level,5)) header <- c("SS","df","MS","F","p.value") row.labels <-0 row.labels[1] <- trend.names[1] row.labels[2] <- rem.names[1] if(level>1) for(i in 2:level) { row.labels[2*i-1] <- trend.names[i] row.labels[2*i] <- rem.names[i] } colnames(z) <- header rownames(z) <- row.labels row.pointer <- 1 SS.A <- n*var(means)*(length(means)-1) SS.remain <- SS.A df.error <- length(means) * (n-1) for(i in 1:level) { SS.trend <- n*(sum(wts[i,]*means))^2/sum(wts[i,]^2) F.trend <- SS.trend/MSerror p.value <- 1-pf(F.trend,1,df.error) z[row.pointer,1] <- SS.trend z[row.pointer,2] <- 1 z[row.pointer,3] <- SS.trend z[row.pointer,4] <- F.trend z[row.pointer,5] <- p.value if(i < (length(means)-1)){ SS.remain <- SS.remain - SS.trend df.remain <- length(means)- 1 - i MS.remain <- SS.remain/df.remain F.remain <- MS.remain/MSerror p.remain <- 1-pf(F.remain,df.remain,df.error) z[row.pointer+1,1] <- SS.remain z[row.pointer+1,2] <- df.remain z[row.pointer+1,3] <- MS.remain z[row.pointer+1,4] <- F.remain z[row.pointer+1,5] <- p.remain} row.pointer <- row.pointer + 2 } return(z) }